package com.vhall.component.controller.watchlimit.facade;

import com.alibaba.fastjson.JSONObject;
import com.vhall.component.entity.watchlimit.vo.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

/**
 * 观看限制
 * @author lsl
 * @since 2021/6/25
 */
@FeignClient(value = "WatchLimitConsoleFacade", path = "/v4/watch-limit/console")
public interface WatchLimitConsoleFacade {

    /**
     * 观看限制
     *
     * @param reqVO
     * @return
     */
    @GetMapping(value = "/get")
    JSONObject getWatchLimit(@Validated GetWatchLimitVO reqVO);

    /**
     * 观看限制 设置 保存
     *
     * @param reqVO
     * @return
     */
    @PostMapping(value = "/limit")
    JSONObject setWatchLimit(@Validated SetWatchLimitVO reqVO);


    /**
     * 白名单
     *
     * @param reqVO
     * @return
     */
    @GetMapping(value = "/white-list")
    WhiteUserListRespVO getWhitelist(@Validated WhiteListVO reqVO);

    /**
     * 白名单搜索
     *
     * @param reqVO
     * @return
     */
    @PostMapping(value = "/white-search-list")
    List<WhiteUserVO> searchWhitelist(@Validated SearchWhiteListVO reqVO);

    /**
     * 白名单删除
     *
     * @param reqVO
     * @return
     */
    @PostMapping(value = "/white-del")
    Integer delWhite(@Validated DelWhiteListVO reqVO);

    /**
     * 上传白名单
     *
     * @param reqVO
     * @return
     */
    @PostMapping(value = "/white-upload")
    JSONObject uploadWhitelist(@Validated UploadWhiteListNewVO reqVO);

    /**
     * 报名
     *
     * @param reqVO
     * @return
     */
    @PostMapping(value = "/reg-apply")
    JSONObject apply(@Validated ReplyVO reqVO);

}
